from utils.common import get_current_timestamp

class ServerMockResponse:
    @staticmethod
    def get_detect_response():
        """
        物体检测服务响应
        返回:
            status: 接口调用状态 (success/error)
            data: {
                objects: [        # 检测到的物体列表
                    {
                        type: 物体类型名称
                        confidence: 置信度(0-1的浮点数)
                        position: {
                            x: 物体左上角x坐标(像素)
                            y: 物体左上角y坐标(像素)
                            width: 物体宽度(像素)
                            height: 物体高度(像素)
                        }
                        description: 物体描述文本
                    }
                ]
                scene_type: 场景类型(室内/室外)
                light_condition: 光线条件(良好/一般/较暗)
                processing_time: 处理耗时
                timestamp: 处理时间戳(YYYY-MM-DD HH:MM:SS)
            }
        """
        return {
            "status": "success",
            "data": {
                "objects": [
                    {
                        "type": "书本",
                        "confidence": 0.95,
                        "position": {
                            "x": 100,        # 单位:像素
                            "y": 200,        # 单位:像素
                            "width": 50,     # 单位:像素
                            "height": 75     # 单位:像素
                        },
                        "description": "一本红色封面的书"
                    }
                ],
                "scene_type": "室内",
                "light_condition": "良好",
                "processing_time": "0.5s",
                "timestamp": get_current_timestamp()
            }
        }

    @staticmethod
    def get_logistics_response():
        """
        物流查询服务响应
        返回:
            status: 接口调用状态 (success/error)
            data: {
                tracking_info: {
                    tracking_number: 快递单号
                    courier: 快递公司名称
                    current_status: 当前运送状态(运输中/已签收/待取件等)
                    current_location: 当前位置描述
                    estimated_delivery: 预计送达时间(YYYY-MM-DD)
                    tracking_history: [   # 物流历史记录
                        {
                            time: 状态更新时间(YYYY-MM-DD HH:MM:SS)
                            location: 所在地点
                            status: 当前状态
                        }
                    ]
                }
                timestamp: 查询时间戳(YYYY-MM-DD HH:MM:SS)
            }
        """
        return {
            "status": "success",
            "data": {
                "tracking_info": {
                    "tracking_number": "SF1234567890",    # 快递单号
                    "courier": "顺丰速运",                # 快递公司
                    "current_status": "运输中",           # 当前状态
                    "current_location": "上海转运中心",    # 当前位置
                    "estimated_delivery": "2025-04-26",   # 预计送达
                    "tracking_history": [                 # 物流轨迹
                        {
                            "time": "2025-04-25 14:30:00",
                            "location": "上海转运中心",
                            "status": "已到达"
                        }
                    ]
                },
                "timestamp": get_current_timestamp()
            }
        }

    @staticmethod
    def get_navigation_response():
        """
        导航服务响应
        返回:
            status: 接口调用状态 (success/error)
            data: {
                route: {
                    destination: 目的地名称
                    current_location: 当前位置描述
                    distance: 总距离(米)
                    estimated_time: 预计到达时间(分钟)
                    steps: [           # 导航步骤列表
                        {
                            instruction: 导航指示文本
                            distance: 该步骤的距离
                        }
                    ]
                    markers: [         # 路线关键点标记
                        {
                            type: 点位类型(起点/终点/途经点)
                            position: {
                                lat: 纬度值
                                lng: 经度值
                            }
                        }
                    ]
                }
                timestamp: 响应时间戳(YYYY-MM-DD HH:MM:SS)
            }
        """
        return {
            "status": "success",
            "data": {
                "route": {
                    "destination": "星巴克咖啡厅",     # 目的地名称
                    "current_location": "当前位置",    # 起点描述
                    "distance": "150米",             # 总距离
                    "estimated_time": "3分钟",       # 预计用时
                    "steps": [                      # 导航步骤
                        {
                            "instruction": "向前直行",
                            "distance": "50米"
                        }
                    ],
                    "markers": [                    # 路线点位
                        {
                            "type": "起点",
                            "position": {
                                "lat": 31.2304,     # 纬度
                                "lng": 121.4737     # 经度
                            }
                        }
                    ]
                },
                "timestamp": get_current_timestamp()
            }
        }


# 测试代码
if __name__ == "__main__":
    # 测试不同意图的响应
    print(ServerMockResponse.get_detect_response())
    print(ServerMockResponse.get_logistics_response())
    print(ServerMockResponse.get_navigation_response())